|
|
|
|
| ( 19 of 30 ) |
| United States Patent | 6,489,963 |
| Parikh , et al. | December 3, 2002 |
An interface for a graphics system includes simple yet powerful constructs that are easy for an application programmer to use and learn. Features include a unique vertex representation allowing the graphics pipeline to retain vertex state information and to mix indexed and direct vertex values and attributes; a projection matrix value set command; a display list call object command; and an embedded frame buffer clear/set command.
| Inventors: | Parikh; Vimal (Santa Clara, CA); Moore; Robert (Heathrow, FL); Cheng; Howard (Sammamish, WA) |
| Assignee: | Nintendo Co., Ltd. (Kyoto, JP) |
| Appl. No.: | 885949 |
| Filed: | June 22, 2001 |
| Current U.S. Class: | 345/522; 345/581; 712/208; 719/328 |
| Intern'l Class: | G06T 015/00; G06F 015/16 |
| Field of Search: | 345/501,503,419,581,520,522,559 709/328 712/208 |
| 4388620 | Jun., 1983 | Sherman. | |
| 4425559 | Jan., 1984 | Sherman. | |
| 4570233 | Feb., 1986 | Yan et al. | |
| 4658247 | Apr., 1987 | Charachorloo. | |
| 4725831 | Feb., 1988 | Coleman. | |
| 4826295 | May., 1989 | Hiroyuki. | |
| 4862392 | Aug., 1989 | Steiner. | |
| 4866637 | Sep., 1989 | Gonzalez-Lopez et al. | |
| 4901064 | Feb., 1990 | Deering. | |
| 4914729 | Apr., 1990 | Omori et al. | |
| 4945500 | Jul., 1990 | Deering. | |
| 5136664 | Aug., 1992 | Bersack et al. | |
| 5170468 | Dec., 1992 | Shah et al. | |
| 5392385 | Feb., 1995 | Evangelisti et al. | |
| 5392393 | Feb., 1995 | Deering. | |
| 5404445 | Apr., 1995 | Matsumoto. | |
| 5421028 | May., 1995 | Swanson. | |
| 5432900 | Jul., 1995 | Rhodes et al. | |
| 5438663 | Aug., 1995 | Matsumoto et al. | |
| 5457775 | Oct., 1995 | Johnson, Jr. et al. | |
| 5504917 | Apr., 1996 | Austin. | |
| 5594854 | Jan., 1997 | Baldwin et al. | |
| 5608424 | Mar., 1997 | Takahashi et al. | |
| 5671401 | Sep., 1997 | Harrell | 345/441. |
| 5687357 | Nov., 1997 | Priem. | |
| 5701444 | Dec., 1997 | Baldwin. | |
| 5721947 | Feb., 1998 | Priem et al. | |
| 5727192 | Mar., 1998 | Baldwin. | |
| 5751295 | May., 1998 | Becklund et al. | |
| 5758182 | May., 1998 | Rosenthal et al. | |
| 5764243 | Jun., 1998 | Baldwin. | |
| 5768626 | Jun., 1998 | Munson et al. | |
| 5768629 | Jun., 1998 | Wise et al. | |
| 5774133 | Jun., 1998 | Neave et al. | |
| 5777629 | Jul., 1998 | Baldwin. | |
| 5798770 | Aug., 1998 | Baldwin. | |
| 5801706 | Sep., 1998 | Fujita et al. | |
| 5801716 | Sep., 1998 | Silverbrook. | |
| 5805868 | Sep., 1998 | Murphy. | |
| 5815166 | Sep., 1998 | Baldwin. | |
| 5821949 | Oct., 1998 | Deering. | |
| 5870587 | Feb., 1999 | Danforth et al. | |
| 5874969 | Feb., 1999 | Storm et al. | |
| 5917496 | Jun., 1999 | Fujita et al. | |
| 5920326 | Jul., 1999 | Rentschler et al. | |
| 5920876 | Jul., 1999 | Ungar et al. | |
| 5936641 | Aug., 1999 | Jain et al. | |
| 5940086 | Aug., 1999 | Rentschler et al. | |
| 5949424 | Sep., 1999 | Cabral et al. | |
| 5949440 | Sep., 1999 | Krech, Jr. et al. | |
| 5966133 | Oct., 1999 | Hoppe | 345/420. |
| 5969726 | Oct., 1999 | Rentschler et al. | |
| 5995121 | Nov., 1999 | Alcorn et al. | |
| 5999196 | Dec., 1999 | Storm et al. | |
| 6002409 | Dec., 1999 | Harkin. | |
| 6023738 | Feb., 2000 | Priem et al. | |
| 6025853 | Feb., 2000 | Baldwin. | |
| 6028611 | Feb., 2000 | Anderson et al. | |
| 6031548 | Feb., 2000 | Gueziec et al. | 345/440. |
| 6037949 | Mar., 2000 | DeRose et al. | |
| 6052133 | Apr., 2000 | Kang. | |
| 6057852 | May., 2000 | Krech, Jr. | |
| 6057863 | May., 2000 | Olarig. | |
| 6075540 | Jun., 2000 | Hoppe | 345/419. |
| 6078331 | Jun., 2000 | Pulli et al. | 345/423. |
| 6092124 | Jul., 2000 | Priem et al. | |
| 6151602 | Nov., 2000 | Hejlsberg et al. | |
| 6173367 | Jan., 2001 | Aleksic et al. | |
| 6177944 | Jan., 2001 | Fowler et al. | |
| 6181352 | Jan., 2001 | Kirk et al. | |
| 6198488 | Mar., 2001 | Lindholm et al. | 345/418. |
| 6222550 | Apr., 2001 | Rosman et al. | 345/419. |
| 6222555 | Apr., 2001 | Christofferson et al. | 345/428. |
| 6226012 | May., 2001 | Priem et al. | |
| 6256041 | Jul., 2001 | Deering | 345/419. |
| 6307551 | Oct., 2001 | Gueziec et al. | 345/419. |
| Foreign Patent Documents | |||
| 2070934 | Dec., 1993 | CA. | |
| 1 074 945 | Feb., 2001 | EP. | |
| 1 075 146 | Feb., 2001 | EP. | |
| 1 081 649 | Mar., 2001 | EP. | |
| 9-330230 | Dec., 1997 | JP. | |
| 11053580 | Feb., 1999 | JP. | |
| 11076614 | Mar., 1999 | JP. | |
| 11161819 | Jun., 1999 | JP. | |
| 11203500 | Jul., 1999 | JP. | |
| 11226257 | Aug., 1999 | JP. | |
| 11259671 | Sep., 1999 | JP. | |
| 11259678 | Sep., 1999 | JP. | |
| 2000-66985 | Mar., 2000 | JP. | |
| 2000-92390 | Mar., 2000 | JP. | |
| 2000-132704 | May., 2000 | JP. | |
| 2000-132706 | May., 2000 | JP. | |
| 2000-149053 | May., 2000 | JP. | |
| 2000-156875 | Jun., 2000 | JP. | |
| 2000-182077 | Jun., 2000 | JP. | |
| 2000-207582 | Jul., 2000 | JP. | |
| 2000-215325 | Aug., 2000 | JP. | |
| WO 94/10641 | May., 1994 | WO. | |
Photograph of Sony PlayStation II System. Photograph of Sega Dreamcast System. Photograph of Nintendo 64 System. Whitepaper: 3D Graphics Demystified, Nov. 11, 1999, www.nvidia.com. Whitepaper: "Z Buffering, Interpolation and More W-Buffering", Doug Rogers, Jan. 31, 2000, www.nvidia.com. Whitepaper: Using GL_NV_vertex_array and GL_NV_fence, posted Aug. 1, 2000, www.nvidia.com. Whitepaper: Anisotropic Texture Filtering in OpenGL, posted Jul. 17, 2000, www.nvidia.com. Whitepaper: Mapping Texels to Pixels in D3D, posted Apr. 5, 2000, www.nvidia.com. Whitepaper: Guard Band Clipping, posted Jan. 31, 2000, www.nvidia.com. Whitepaper: Cube Environment Mapping, posted Jan. 14, 2000, www.nvidia.com. Whitepaper: Color Key in D3D, posted Jan. 11, 2000, www.nvidia.com. Whitepaper: Vertex Blending Under DX7 for the GeForce 256, Jan. 5, 2000, www.nvidia.com. Whitepaper: Optimizing Direct3D for the GeForce 256, Jan. 3, 2000, www.nvidia.com. Whitepaper: Dot Product Texture Blending, Dec. 3, 1999, www.nvidia.com. Whitepaper: Technical Brief: AGP 4X with Fast Writes, Nov. 10, 1999, www.nvidia.com. Technical Brief: Transform and Lighting, Nov. 10, 1999, www.nvidia.com. Technical Brief: What's New With Microsoft Direct X7, posted Nov. 10, 1999, www.nvidia.com. Mitchell et al., "Multitexturing in DirectX6", Game Developer, Sep. 1998, www.gdmag.com. VisionTek, "GeForce2 GS Graphics Processing Unit", .COPYRGT.2000 www.visiontek.com. Jim Bushnell et al. "Advanced Multitexture Effects With Direct3D and OpenGL", Pyramid Peak Design & ATI Research, Inc., GameDevelopers Conference, .COPYRGT.1999. Sony PlayStation II Instruction Manual, Sony Computer Entertainment Inc., .COPYRGT.2000. Stand and Be Judged, Next Generation, May 2000. PlayStation II: Hardware Heaven or Hell?, Next Generation, Jan. 2000. Chris Charla, "Play Station II: The Latest News", Next Generation, Sep. 1999. "First PlayStation II Gameplay Screens Revealed!", Next Generation, Sep. 1999. Game Enthusiast Online Highlights, Mar. 18, 1999. Game Enthusiast Online Highlights, Mar. 19, 1999. Game Enthusiast Online Highlights, Mar. 17, 1999. Game Enthusiast Online Highlights, Oct. 20, 1999. Joel Easley, "PlayStation II Revealed", Game Week, Sep. 29, 1999. Inside Sony's Next Generation Playstation, .COPYRGT.1999. Press Releases, Mar. 18, 1999. Chris Johnston, "PlayStation Part Deux", Press Start, .COPYRGT.1999. Nikkei Shimbun, "Sony Making SME, Chemical and SPT into Wholly-Owned Subsidiaries", Mar. 9, 1999. AM News: Japanese Developers Not All Sold on PS2, Next Generation, Mar. 16, 1999. Sony To Turn PlayStation Maker Into Wholly Owned Unit-Nikkei, Dow Jones News Service, Mar. 8, 1999. Yumiko Ono, Sony Antes Up Its Chips In Bet On New Game System, Dow Jones News Service, Mar. 4, 1999. MacWeek.Com Gets Inside Story on Connectix VGS for Windows; Controversial Emulator of Sony PlayStation Games Cureently Available for Macs Only, Business Wire, Mar. 12, 1999. "DexDrive Bridges Gap", The Tampa Tribune, Mar. 12, 1999. A Microprocessor With a 128b CPU, 10 Floating-Point MAC's, 4 Floating-Point Dividers, and an MPEG2 Decoder, 1999 IEEE International Solid-State Circuits Conference, Feb. 16, 1999. Dreamcast Instruction Manual, Sega Enterprises, Ltd., .COPYRGT.1998. "Sega To Launch Video Camera for Dreamcast", Reuters Business News, Feb. 16, 2000. David Pescovitz, "Dream On", Wired, Aug. 1999. Randy Nelson, "Dreamcast 101: Everything You Ever Wanted To Know About Sega's Powerful New Console", Official Sega Dreamcast Magazine, Jun. 1999. 2D/3D Graphics Card User Manual, Guillemot .COPYRGT.1999. Nintendo 64 Instruction Booklet Nintendo of America, 1998. Steven Levy, "Here Comes PlayStation II", Newsweek, Mar. 6, 2000. David Sheff, "Sony Smackage: Test Driving The PlayStation II", Wired, Nov. 1999. Introducing The Next Generation PlayStation, Sony Computer Entertainment Inc., .COPYRGT.1999. Leadtek GTS, Aug. 3, 2000, www.hexus.net. Voodoo 5 5500 Review, Jul. 26, 2000, www.hexus.net. ATI Radeon 64 Meg DDR OEM, Aug., 19, 2000, www.hexus.net. Microsoft Xbox--The Future of Gaming, Microsoft Xbox Performance Sheet, www.xbox.com. Robert L. Cook, "Shade Trees", Computer Graphics, vol. 18, No. 3, Jul. 1984. Wang et al., "Second-Depth Shadow Mapping", Department of Computer Science, Univ. N.C, Chapel Hill, N.C. pp. 1-7. Peercy et al., "Efficient Bump Mapping Hardware", Computer Graphics Proceedings, Annual Conference Series, 1997. Gustavo Oliveira, "Refractive Texture Mappig, Part One", www.gamasutra.com, Nov., 10, 2000. John Schlag, Fast Embossing Effects on Raster Image Data, Graphics Gems IV, Edited by Paul S. Heckbert, Computer Science Department, Carnegie Mellon University, Academic Press, Inc. 1994,pp. 433-437. James F. Blinn, "Simulationof Wrinkled Surfaces," Caltech/JPL, pp. 286-292, SIGGRAPH 78 (1978). Tomas Moller and Eric Haines "Real-Time Rendering", AK Peter, Ltd., .COPYRGT.1999, pp. 127-142. Technical Presentation: Vertex Buffers, posted Jun. 12, 2000, www.nvidia.com. Technical Presentation: Hardware Transform and Lighting, www.nvidia.com, posted Jun. 12, 2000. Technical Presentation: Hardware Bump-mapping Choices and Concepts, Jun. 7, 2000, www.nvidia.com. Technical Presentation: How to Bump Map a Skinned Polygonal Model, Jun. 7, 2000, www.nvidia.com. Technical Presentation: Computations for Hardware Lighting and Shading, Mar. 17, 2000, www.nvidia.com. Technical Presentation: Practical Bump-mapping for Today's GPUs, Mar. 17, 2000 www.nvidia.com. Technical Presentation: Shadows, Transparency, & Fog, Mar. 17, 2000 www.nvidia.com. Technical Presentation: GeForce 256 Register Combiners, Mar. 17, 2000, www.nvidia.com. Technical Presentation: TexGen & The Texture Matrix, Mar. 15, 2000 www.nvidia.com. Technical Presentation: Toon Shading, Mar. 15, 2000, www.nvidia.com. Technical Presentation: D3D 7 Vertex Lighting, Mar. 15, 2000, www.nvidia.com. Technical Presentation: Per-Pixel Lighting (by S. Dietrich) Mar. 14, 2000 www.nvidia.com. Technical Presentation: GeForce 256 and RIVA TNT Combiners, Dec. 8, 1999, www.nvidia.com. Technical Presentation: Vertex Cache Optimization, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Vertex Blending, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Hardware Transform and Lighting, Nov. 12, 1999, www.nvidia.com. Technical Presentation: GeForce 256 Overview, Nov. 12, 1999, www.nvidia.com. Technical Presentation: DirectX 7 and Texture Management, Nov. 12, 1999 www.nvidia.com. Technical Presentation: Dot Product Lighting, Nov. 12, 1999, www.nvidia.com. Technical Presentation: Texture Coordinate Generation, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Phong Shading and Lightmaps, Nov. 3, 1999, www.nvidia.com. Technical Presentation: The ARB_multitexture Extension, Nov. 3, 1999 www.nvidia.com. Technical Presentation: Multitexture Combiners, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Emboss Bump Mapping, Nov. 3, 1999, www.nvidia.com. Technical Presentation: Hardware Accelerated Anisotropic Lighting, Nov. 3, 1999 www.nvidia.com. Technical Presentation: Guard Band Clipping, Nov. 3, 1999, www.nvidia.com. The RenderMan Interface, Stephan R. Keith, Version 3.1, Pixar Animation Studios, Sep. 1989. The RenderMan Interface, Version 3.2, Pixar Animation Studios, Jul. 2000, www.pixar.com. NVIDIA Product Overview, "GeForce2Ultra", NVIDIA Corporation, Aug. 21, 2000, www.nvidia.com. Duke, "Dreamcast Technical Specs", Sega Dreamcast Review, Sega, 2/99, www.game-revolution.com. Marlin Rowley, "GeForce 1 & 2 GPU Speed Tests", May 11, 2000, www.g256.com. "Dreamcast: The Full Story", Next Generation, Sep. 1998. DirectX 7.0 Programmer's Reference, Microsoft Corportion, 1995-1999 (as part of the DirectX 7.0 SDK on the Companion CD included with "Inside Direct3D", Microsoft Programming Series, Peter J. Kovach, Microsoft Press, 1999). "Inside Direct3D", Microsoft Programming Series, Peter J. Kovach, Microsoft Press, 1999. "OpenGL Programming Guide, The Official Guide to Learning OpenGL, Release 1", Jackie Nieder, Tom David, Mason Woo, Addision-Wesley Publishing Co., 1993. "Procedural Elements for Computer Graphics," Second Edition, David F. Rogers, McGraw Hill, 1998. "Real-Time Rendering," Tomas Molleir, Eric Haines, AK Peters, 1999. "Computer Graphics, Principles and Practice," Second Edition, The Systems Programming Series, Foley, van Dam, Fiener, Hughes, Addison Wesley, 1990. "Principles of Three-Dimensional Computer Animation", Revised Edition, Michael O'Rourke, W.W. Norton & Company, 1998. |
TABLE I
Opcode Opcode(7:0) Next Followed by
NOP 00000000 none none
Draw_Quads 10000vat(2:0) VertexCount(15:0) Vertex attribute
stream
Draw_Triangles 10010vat(2:0) VertexCount(15:0) Vertex attribute
stream
Draw_Triangle_strip 10011vat(2:0) VertexCount(15:0) Vertex attribute
stream
Draw_Triangle_fan 10100vat(2:0) VertexCount(15:0) Vertex attribute
stream
Draw_Lines l0l0lvat(2:0) VertexCount(15:0) Vertex attribute
stream
Draw_Line_strip 101l0vat(2:0) VertexCount(15:0) Vertex attribute
stream
Draw_Points 10111vat(2:0) VertexCount(15:0) Vertex attribute
stream
CP_LoadRegs 0000lxxx Address[7:0] 32 bits data
(for CP only registers)
XF_LoadRegs 000l0xxx none (N+2)*32 bits
(This is used for First 32 bit:
loading all XF 15:00 register address
in XF
registers, including 19:16 number of 32
bit registers to be
matrices. It can be loaded (N+1, 0 means
1, 0xff means 16)
used to load matrices 31:20 unused
with immediate data) Next N+1 32 bits:
31:00 register data
XF_IndexLoadRegA 00l00xxx none 32 bits
(registers are in the 11:0 register
address in XF
first 4K address space 15:12 number of 32
bit data, (0 means 1,
of the XF. It can be 0xff means 16)
used to block load
matrix and light 31:16 Index to the
register Array A
registers)
XF_IndexLoadRegB 00l0lxxx none 32 bits
(registers are in the 11:0 register
address in XF
first 4K address space 15:12 number of 32
bit data, (0 means 1,
of the XF. It can be 0xff means 16)
used to block load 31:16 Index to the
register Array B
matrix and light
registers)
XF_IndexLoadRegC 001l0xxx none 32 bits
(registers are in the 11:0 register
address in XF
first 4K address space 15:12 number of 32
bit data. (0 means 1,
of the XF. It can be 0xff means 16)
used to block load 31:16 Index to the
register Array C
matrix and light
registers)
XF_IndexLoadRegD 00111xxx none 32 bits
(registers are in the 11:0 register
address in XF
first 4K address space 15:12 number of 32
bit data, (0 means 1,
of the XF. It can be 0xff means 16)
used to block load 31:16 Index to the
register Array D
matrix and light
registers)
Call_Object 0l000xxx none 2x32
25:5 address (need to
be 32 byte align)
25:5 count (32 byte
count)
V$ Invalidate 0l00lxxx none none
SU_ByPassCmd 0110,SUattr(3:0) none 32 bit data
(This includes all the
register load below XF
and all setup unit
commands, which
bypass XF)
TABLE II
Register name Register address[7:0] Bit fields
MatrixIndexA 0011xxxx 5:0 index for
position/normal matrix
11:6 index for tex0 matrix
17:12 index for tex1
matrix
23:13 index for tex2
matrix
29:24 index for tex3
matrix
MatrixIndexB 0100xxxx 5:0 index for tex4 matrix
11:6 index for tex5 matrix
17:12 index for tex6
matrix
23:18 index for tex7
matrix
VCD_Lo 0l0lxxxx 16:00 VCD 12 to 0
0 PosMatIdx
I Tex0MatIdx
2 TexlMatIdx
3 Tex2atIdx
4 Tex3MatIdx
5 Tex4MatIdx
6 Tex5MatIdx
7 Tex6MatIdx
8 Tex7MatIdx
10:9 Position
12:11 Normal
14:13 ColorDiffused
16:15 ColorSpecular
VCD_-H1 0ll0xxxx 15:00 VCD 20 to 13
01:00 Tex0Coord
03:02 Tex1Coord
05:04 Tex2Coord
07:06 Tex3Coord
09:08 Tex4Coord
11:10 Tex5Coord
13:12 Tex6Coord
15:14 Tex7Coord
VAT_group0 0111x,vat[2:0] 32 bits
08:00 Position parameters
12:09 Normal parameters
16:13 ColorDiffused
parameters
20:17 ColorSpecular
parameters
29:21 Tex0Coord parameters
30:30 ByteDequant
31:31 NormalIndex3
VAT_group1 1000x,vat[2:0] 32 bits
08:00 Tex1Coord parameters
17:09 Tex2Coord parameters
26:18 Tex3Coord parameters
30:27 Tex4Coord parameters
sub-field[3:0]
3l unused
VAT_group2 100lx.vat[2:0] 32 bits
04:00 Tex4Coord parameters
sub-field[8:4]
13:05 Tex5Coord parameters
22:14 Tex6Coord parameters
31:23 Tex7Coord parameters
ArrayBase l0l0.array[3:0] 32 bit data
25:00 Base(25:0)
array[3:0]: 31:26 unused
0000 = attribute9 base register
0001 = attribute10 base register
0010 = attribute11 base register
0011 = attribute12 base register
0100 = attribute13 base register
0101 = attribute14 base register
0110 = attribute15 base register
0111 = attribute16 base register
1000 = attributel7 base register
1001 = attribute18 base register
1010 = artributel9 base register
1011 = attribute20 base register
1100 = IndexRegA base register
1101 = IndexRegB base register
1110 = IndexRegC base register
1111 = IndexRegD base register
ArrayStride 1011,array[3:0] 32 bit data
07:00 Stride(7:0)
array[3:00]: 31:08 unused
0000 = attribute9 stride register
0001 = attribute10 stride register
0010 = attribute11 stride register
0011 = attribute12 stride register
0100 = attribute13 stride register
0101 = attribute14 stride register
0110 = attribute15 stride register
0111 = attribute16 stride register
1000 = attribute17 stride register
1001 = attributel8 stride register
1010 = attributel9 stride register
1011 = attribute20 stride register
1100 = IndexRegA stride register
1101 = IndexRegB stride register
1110 = IndexRegC stride register
1111 = IndexRegD stride register
TABLE III
Location in stream (in words) Data Description
0 to 2 X, Y, Z in 32b SPFP Geometry
information in single
precision floating
point format
3 to 5 Nx, Ny, Nz in 32b SPFP Normal vector
6 RGBA in 32b integer (8b/comp) Color0 per vertex
(RGBA)
7 RGBA in 32b integer (8b/comp) Color1 per vertex
(RGBA)
8 to 10 Tx, Ty, Tz in 32b SPFP Binormal vector T
11 to 13 Bx, By, Bz in 32b SPFP Binormal vector B
14 to 15 S0, T0 in 32b SPFP Texture 0 data
16 to 29 Sn, Tn in 32b SPFP Texture 1 to n data
TABLE IV
VERTEX ATTRIBUTE TABLE (VAT)
Attribute Attribute
number name bits Encoding
0 PosMatIdx 0 Position/normal matrix index. Always direct if
present
0: not present 1: present
NOTE: position and normal matrices are stored
in 2 separate
RAMs in the Xform unit, but there is a one to
one correspondence
between normal and position index. If index "A"
is used for the
position. then index "A" needs to be used for
the normal as well.
1 Tex0MatIdx 1 TextCoord0 matrix index, always direct if
present
0: not present 1: present
2 Tex1MatIdx 2 TextCoord0 matrix index, always direct if
present
0: not present 1: present
3 Tex2MatIdx 3 TextCoord0 matrix index, always direct if
present
0: not present 1: present
4 Tex3MatIdx 4 TextCoord0 matrix index, always direct if
present
0: not present 1: present
5 Tex4MatIdx 5 TextCoord0 matrix index, always direct if
present
0: not present 1: present
6 Tex5MatIdx 6 TextCoord0 matrix index, always direct if
present
0: not present 1: present
7 Tex6MatIdx 7 TextCoord0 matrix index, always direct if
present
0: not present 1: present
8 Tex7MatIdx 8 TextCoord0 matrix index, always direct if
present
0: not present 1: present
9 Position 10:9 00: reserved 10:8 bit index
01: direct 11:l6 bit index
10 Normal 12:11 00: not present 10:8 bit index
01: direct 11:l6 bit index
11 Color0 14:13 00: not present 10:8 bit index
01: direct 11:16 bit index
12 Color1 16:15 00: not present 10:8 bit index
01: direct 11:l6 bit index
13 Tex0Coord 18:17 00: not present
01: direct
10:8 bit index
11:16 bit index
14 Tex1Coord 20:19 00: not present
01: direct
10:8 bit index
11:16 bit index
15 Tex2Coord 22:21 00: not present
01: direct
10:8 bit index
11:16 bit index
16 Tex3Coord 24:23 00: not present
01: direct
10:8 bit index
11:l6 bit index
17 Tex4Coord 26:25 00: not present
01: direct
10:8 bit index
11:16 bit index
18 Tex5Coord 28:27 Same as above
19 Tex6Coord 30:29 00: not present
01: direct
10:8 bit index
11:16 bit index
20 Tex7Coord 32:31 00: not present
01: direct
10:8 bit index
11:16 bit index
TABLE V
Bit Attribute Attribute .CompCount .CompSize Shift
amount
field number name sub-field(0) sub-field(3:1)
sub-field(8:4)
8:0 9 Position 0: two (x,y) 0:ubyte 1:byte 2:ushort
Location of decimal point
1:three 3:short 4:float 5-7 from
LSB. This shift applies
(x,y,z) reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
12:9 10 Normal 0: three 0:reserved 1:byte NA
(Byte: 6, Short: 14)
normals 2:reserved
1: nine 3:short 4:float 5-7
normals reserved
16:13 11 Color0 0: three 0:16 bit 565 (three comp) NA
(r,g,b) 1:24 bit 888 (three comp)
2:32 bit 888x (three
comp)
1: four 3:16 bit 4444 (four comp)
(r,g,b,a) 4:24 bit 6666 (four comp)
5:32 bit 8888 (four comp)
20:17 12 Color1 0: three 0:16 bit 565 (three comp) NA
(r,g,b) 1:24 bit 888 (three comp)
2:32 bit 888x (three comp)
3:16 bit 4444 (four comp)
1: four 4:24 bit 6666 (four comp)
(r,g,b,a) 5:32 bit 8888 (four comp)
29:21 13 Tex0Coord 0: one (s) 0:ubyte 2:ushort 4:float
Location of decimal point
1: two (s,t) 1:byte 3:short 5-7 from
LSB. This shift applies
reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
38:30 14 Tex1Coord 0: one (s) 0:ubyte 2:ushort 4:float
Location of decimal point
1: two (s,t) 1:byte 3:short 5-7 from
LSB. This shift applies
reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
47:39 15 Tex2Coord 0: one (s) 0:ubyte 2:ushort 4:float
Location of decimal point
1: two (s,t) 1:byte 3:short 5-7 from
LSB. This shift applies
reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
56:48 16 Tex3Coord 0: one (s) 0:ubyte 2:ushort 4:float
Location of decimal point
1: two (s,t) 1:byte 3:short 5-7 from
LSB. This shift applies
reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
65:57 17 Tex4Coord 0: one (s) 0:ubyte 2:ushort 4:float
Location of decimal point
1: two (s,t) 1:byte 3:short 5-7 from
LSB. This shift applies
reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
74:66 18 Tex5Coord 0: one (s) 0:ubyte 2:ushort 4:float
Location of decimal point
1: two (s,t) 1:byte 3:short 5-7 from
LSB. This shift applies
reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
83:75 19 Tex6Coord 0: one (s) 0:ubyte 2:ushort 4:float
Location of decimal point
1: two (s,t) 1:byte 3:short 5-7 from
LSB. This shift applies
reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
92:84 20 Tex7Coord 0: one (s) 0:ubyte 2:ushort 4:float
Location of decimal point
1: two (s.t) 1:byte 3:short 5-7 from
LSB. This shift applies
reserved to all
u/short components and
to
u/byte components where
ByteDequant is asserted
(Below).
93:93 FLAG ByteDequant (Rev B Only) 0: Shift does not apply to
Shift applies for u/byte
u/byte
components of position and
1: Shift does apply to texture
attributes.
u/byte
94:94 FLAG NormalIndex3 (Rev B Only) 0: Single index per Normal When
nine normals selected
1: Triple index per nine- in
indirect mode, input will
Normal be
treated as three staggered
indices
(one per triple biased
by
component size), into
normal
table.
NOTE!!
First
index internally biased
by 0.
Second
index internally
biased
by 1.
Third
index internally
biassed
by 2.
Register Address Definition Configuration
0x0000 Matrix Ram word 0 32b matrix data
0x0001-0x00ff Matrix Ram word (n) 32b matrix data
0x0100-0x03ff Not used
Register Address Definition Configuration
0x0400-0x402 Normal Ram words 0,1,2 20b data
0x0403-0x045f Normal Ram word (n) 20b data
0x0460-0x05ff Not used
Register Address Definition Configuration
0x0500 Matrix Ram word 0 32b matrix data
0x0501-0x05ff Matrix Ram word (n) 32b matrix data
GXColor ClearColor; //Color value to clear the framebuffer
to during copy.
u32 ClearZ; //24 bit Z value to clear the framebuffer
to during copy.
GXAttr Attr; //Which attribute (Position, Normal, Color, etc.)
GXAttrType Type; //Attribute Type (None, Direct, Indexed, etc.)
GXVtxFmt vtxfint; //Index into the Vertex Attribute Table
(0-7).
GXAttr Attr; //Attribute Type.
GXCompCnt CompCnt; //Number of components for the attribute.
GXCompType CompType //Type of each Component.
u8 Shift; //Locatin of decimal point for fixed point
format types.
GXAttr Attr; //Attribute type.
u32 Base; //Address (25:0) of the attribute data array in main
memory.
u8 Stride; //Number of bytes between successive elements in the
attribute array.
f32 Matrix[4] [4] //Projection matrix.
GXProjMtxType type; //Indicates if the projection is
orthographic.
TABLE VI
Hex Binary
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
|
|